package com.mlx.meng.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface DataPermissionRow {

    /**
     * 数据权限表名称
     *
     */
    String tableName() default "";

    /**
     * 权限字段外键关系映射，格式：外键字段名:外键指向表名:外键指向字段名
     *
     */
    String[] foreignKeys() default {};

    /**
     * 不开启数据权限：如果为true，不进行数据权限过滤
     *
     */
    boolean disEnable() default false;


    /**
     * 如果getMethodName为空，根据权限字段名称获取对应属性的属性值进行权限判断
     * 否则：getMethodName指定的方法，通过权限字段名称为方法参数获取对应权限字段的值进行权限判断
     *
     * @return
     */
    String getMethodName() default "";

    Class<?> getMethodParamType() default Object.class;
}
